package com.sykj.why.mongo.service;

import com.sykj.why.mongo.document.entity.SolrDocumentT;
import com.sykj.why.mongo.dto.PageDTO;
import com.sykj.why.util.Page;
import org.apache.solr.client.solrj.SolrServerException;

import java.io.IOException;
import java.util.List;

/**
 * @author Eleven
 * @date 2019/6/18
 * @desc 公用的solr业务访问层
 */

public interface SolrService {

    /**
     * 添加资源到Solr
     * @param solrDocumentT
     */
    void add(SolrDocumentT solrDocumentT) throws IOException, SolrServerException;


    /**
     * 批量添加资源到Solr
     * @param list
     */
    void add(List<SolrDocumentT> list);

    /**
     * 更新Solr中的资源
     * @param solrDocumentT
     */
    void update(SolrDocumentT solrDocumentT);

    /**
     * 删除资源库中的数据
     * @param id
     */
    void remove(String id);

    /**
     * 清空solr库
     */
    void removeAll();

    /**
     * 查询全部
     * @return
     */
    List<SolrDocumentT> findAll();

    /**
     * 分页查询
     * @param pageDTO 分页查询入参对象
     * @return
     */
    Page findByPage(PageDTO pageDTO) throws IOException, SolrServerException;

}
